#ifndef _KLAS_TRANSFORMATION_HPP_
#define _KLAS_TRANSFORMATION_HPP_

#include "../Platform.hpp"
#include "../Math/Vector2.hpp"

namespace klas
{
  namespace graphics
  {
    //! Contains transformation information.
    struct KLAS_API Transformation
    {      
      //! Ctor.
      /*! \param pos The position of the transformation.
          \param scale_ The scale of the transformation.
          \param rot The rotation, in degrees, of the transformation. */
      Transformation(const math::Vector2d& position, const math::Vector2d& size_ = math::Vector2d(1.0, 1.0), double rotation = 0.0)
        : pos(position), size(size_), rot(rotation)
      {}

      //! Ctor.
      /*! \param pos The position of the transformation.
          \param rot The rotation, in degrees, of the transformation. */
      Transformation(const math::Vector2d& position, double rotation)
        : pos(position), size(1.0, 1.0), rot(rotation)
      {}

      //! Ctor.
      Transformation()
        : size(1.0, 1.0), rot(0.0)
      {}

      math::Vector2d pos;   //! Position.
      math::Vector2d size;  //! Size (in pixels)
      double         rot;   //! Rotation (degrees).
    };
  }
}


#endif